package Git2024_5_28;

/**
 * 面试题
 */
public class M {
    // 认证 授权 凭证
    // 会话保持技术
    // Cookie Session(get set remove三个方法) Token
    // Cookie 和 Session 的区别
    /**
     * 1.安全性 隐私
     * 2.Cookie可以长时间保存数据
     * 3.Session不适合保存大量数据
     */
    // 负载均衡 - Session
    /**
     * 将并发分发给不同的服务器 以分担压力
     */
    // 产生问题: 前后请求未分发到同一服务器中 无法识别其他服务器上已认证的信息
    /**
     * 措施: 共享Session
     * 将session对象,id等信息单独保存在一个独立的服务器中 - session服务器
     * 其他服务器接收请求时统一在其中进行查询
     */
    // session 不适合长期保存数据 - 几乎无解 - 引入Token
    /**
     * Token令牌: 解决频繁查询,请求需求
     * 组成: 长字符串 + 服务器签名 -> 不易被篡改
     * 基于token的认证主要有: JWT (Json Web Token)
     *
     * 流程
     * 客户端生成的字符串向服务端请求令牌 第一次请求时 服务器会生成token 并将其返回
     * 下次请求时携带token即可
     * 1.客户端请求
     * 2.服务端收到请求 进行信息核验
     * 3.验证成功后生成token并返回
     * 4.客户端将token存储在cookie或local Storage(本地存储)中
     * 5.客户端每次请求都携带该token
     * 6.验证成功 返回响应(资源 数据等)
     */
    // session 会话 token 令牌 的区别
}
